Primeras correcciones del paper¶

Lo que se hace aquí son sacar las PDF's parciales del modelo bueno final, para los casos:

  • Pt-Pt
  • Pt-Pd
  • Pt-Co
  • Pd-Pd
  • Pd-Co
  • Co-Co
In [1]:
# importing libraries
import pandas as pd
import matplotlib.pyplot as plt
import numpy as np
import plotly.express as px
import os
from sys import path

dir_actual = os.getcwd()
path.insert(0, 'C:/Users/guill/OneDrive/Documentos/Tesis/Proyect')

import PDF.runner as pdf

options = [
    ['Pt','Pt'],
    ['Pt','Pd'],
    ['Pt','Co'],
    ['Pd','Co'],
    ['Pd','Pd'],
    ['Co','Co']
]

for option in options:
    temp_name = f'partial_{option[0]}-{option[1]}.xyz'
    pdf.filter_xyz('M0-polrad_1_d2.xyz',temp_name, option)

    pdf.run_pdf(temp_name, dir_actual, 2600, 0.02)
El archivo temporal partial_Pt-Pt.xyz ha sido creado con los elementos deseados ['Pt', 'Pt'].
c:\Users\guill\OneDrive\Documentos\Tesis\Proyect\paper\corrections1

   3.79982996      -4.04217005      -22.7787991              78   93210.0000    
  0.251980007      -11.9209003      -19.1777992              78   93210.0000    
   3.73441005      -7.94387007      -19.2996998              78   93210.0000    
        1195  atomos       713415  pares 
 Rango de distancias    2.48158979     -   48.4526596    
 Distancias promedio    23.6963482    
 Factor de normalizacion    36930.7461    

El archivo temporal partial_Pt-Pd.xyz ha sido creado con los elementos deseados ['Pt', 'Pd'].
c:\Users\guill\OneDrive\Documentos\Tesis\Proyect\paper\corrections1

   3.79982996      -4.04217005      -22.7787991              78   183692.000    
  -3.91411996      -4.20700014E-02  -23.2014999              46   183692.000    
   3.82028008      0.168420002      -22.8414993              46   183692.000    
        3162  atomos      4997541  pares 
 Rango de distancias    2.35129619     -   48.7363243    
 Distancias promedio    23.7601967    
 Factor de normalizacion    258682.906    

El archivo temporal partial_Pt-Co.xyz ha sido creado con los elementos deseados ['Pt', 'Co'].
c:\Users\guill\OneDrive\Documentos\Tesis\Proyect\paper\corrections1

   4.50799987E-02  -7.80916977      -22.9058990              27   124503.000    
  -3.66694999      -4.02750015      -22.9480991              27   124503.000    
   4.67500016E-02  -4.01785994      -23.0221004              27   124503.000    
        2354  atomos      2769481  pares 
 Rango de distancias    2.17662740     -   48.9168205    
 Distancias promedio    26.2295151    
 Factor de normalizacion    129852.602    

El archivo temporal partial_Pd-Co.xyz ha sido creado con los elementos deseados ['Pd', 'Co'].
c:\Users\guill\OneDrive\Documentos\Tesis\Proyect\paper\corrections1

   4.50799987E-02  -7.80916977      -22.9058990              27   121775.000    
  -3.66694999      -4.02750015      -22.9480991              27   121775.000    
   4.67500016E-02  -4.01785994      -23.0221004              27   121775.000    
        3126  atomos      4884375  pares 
 Rango de distancias    2.17662740     -   49.0387459    
 Distancias promedio    25.6915932    
 Factor de normalizacion    234547.625    

El archivo temporal partial_Pd-Pd.xyz ha sido creado con los elementos deseados ['Pd', 'Pd'].
c:\Users\guill\OneDrive\Documentos\Tesis\Proyect\paper\corrections1

  -3.91411996      -4.20700014E-02  -23.2014999              46   90482.0000    
   3.82028008      0.168420002      -22.8414993              46   90482.0000    
  -4.10642004       3.81434989      -22.9447994              46   90482.0000    
        1967  atomos      1933561  pares 
 Rango de distancias    2.44924688     -   48.5268288    
 Distancias promedio    23.8169022    
 Factor de normalizacion    99608.9062    

El archivo temporal partial_Co-Co.xyz ha sido creado con los elementos deseados ['Co', 'Co'].
c:\Users\guill\OneDrive\Documentos\Tesis\Proyect\paper\corrections1

   4.50799987E-02  -7.80916977      -22.9058990              27   31293.0000    
  -3.66694999      -4.02750015      -22.9480991              27   31293.0000    
   4.67500016E-02  -4.01785994      -23.0221004              27   31293.0000    
        1159  atomos       671061  pares 
 Rango de distancias    2.17662740     -   48.9168205    
 Distancias promedio    28.6401920    
 Factor de normalizacion    29319.1445    

Análisis y Conclusiones de los Datos de Cálculo de las PDFs Parciales¶

1. Pt-Pt¶

  • Número de Átomos y Pares: 1195 átomos, 713415 pares.
  • Rango de Distancias: 2.48 - 48.45 $\AA$.
  • Distancia Promedio: 23.70 $\AA$.
  • Factor de Normalización: 36930.75.
  • Observación: La contribución de las interacciones Pt-Pt es moderada, ya que la distancia promedio y el factor de normalización son relativamente altos, indicando una distribución más extensa en la nanopartícula.

2. Pt-Pd¶

  • Número de Átomos y Pares: 3162 átomos, 4997541 pares.
  • Rango de Distancias: 2.35 - 48.74 $\AA$.
  • Distancia Promedio: 23.76 $\AA$.
  • Factor de Normalización: 258682.91.
  • Observación: Las interacciones Pt-Pd son significativas, con un alto número de pares y un rango amplio de distancias, lo que sugiere una notable contribución a la estructura global.

3. Pt-Co¶

  • Número de Átomos y Pares: 2354 átomos, 2769481 pares.
  • Rango de Distancias: 2.18 - 48.92 $\AA$.
  • Distancia Promedio: 26.23 $\AA$.
  • Factor de Normalización: 129852.60.
  • Observación: Las interacciones Pt-Co tienen una distribución más amplia, con una distancia promedio mayor, lo que indica que Co se encuentra disperso en la nanopartícula en estas interacciones.

4. Pd-Co¶

  • Número de Átomos y Pares: 3126 átomos, 4884375 pares.
  • Rango de Distancias: 2.18 - 49.04 $\AA$.
  • Distancia Promedio: 25.69 $\AA$.
  • Factor de Normalización: 234547.63.
  • Observación: Las interacciones Pd-Co son extensas, con un alto número de pares y una distancia promedio considerable, sugiriendo una distribución significativa de Co en relación con Pd.

5. Pd-Pd¶

  • Número de Átomos y Pares: 1967 átomos, 1933561 pares.
  • Rango de Distancias: 2.45 - 48.53 $\AA$.
  • Distancia Promedio: 23.82 $\AA$.
  • Factor de Normalización: 99608.91.
  • Observación: Las interacciones Pd-Pd son menos frecuentes en comparación con otras, reflejando una menor concentración de pares Pd-Pd.

6. Co-Co¶

Es la que ma´s de desvía pero menos contribuye por poder de difracción

  • Número de Átomos y Pares: 1159 átomos, 671061 pares.
  • Rango de Distancias: 2.18 - 48.92 $\AA$.
  • Distancia Promedio: 28.64 $\AA$.
  • Factor de Normalización: 29319.14.
  • Observación: Las interacciones Co-Co presentan una distancia promedio mayor, indicando que los átomos de Co están más dispersos en la nanopartícula.

Conclusiones Generales¶

  1. Distribuciones Extensas: Las interacciones que involucran Co (especialmente Co-Co) y Pt tienen distancias promedio mayores, sugiriendo una distribución más extensa de estos elementos dentro de la nanopartícula.

  2. Contribuciones Significativas: Las interacciones Pt-Pd y Pd-Co muestran un alto número de pares y factores de normalización elevados, indicando que estas interacciones son cruciales para la estructura global de la nanopartícula.

  3. Interacciones Menores: Las interacciones Pd-Pd y Co-Co son menos frecuentes, reflejando que estas combinaciones de elementos tienen una menor influencia en la estructura general comparado con otras interacciones.

  4. Implicaciones Estructurales: Las diferencias en los factores de normalización y las distancias promedio entre diferentes interacciones sugieren que la estructura final de la nanopartícula es altamente dependiente de las combinaciones y distribuciones de estos elementos.

Estas observaciones permiten una comprensión más detallada de cómo las interacciones atómicas específicas contribuyen a la estructura de la nanopartícula.

Partial PDFs¶

Comparaciones¶

Nota: para este caso se usa el termino "total" para el caso sin parciales, NO el experimental, más bien el calculado

In [2]:
df_ref = pd.read_csv('../../26_de_abril/Post-PtPdCo-PDF.csv', sep='\\s+', header=None, names=['r','G(r)'])
df_ref = df_ref.replace('--',np.nan).dropna()
df_ref = df_ref['G(r)'].iloc[1::2].astype(float)
df_ref = df_ref.reset_index(drop=True)
df_ref.index *= 0.02

df_CoCo = pd.read_csv('partial_Co-Co.txt', sep='\\s+')
df_PdCo = pd.read_csv('partial_Pd-Co.txt', sep='\\s+')
df_PdPd = pd.read_csv('partial_Pd-Pd.txt', sep='\\s+')
df_PtCo = pd.read_csv('partial_Pt-Co.txt', sep='\\s+')
df_PtPd = pd.read_csv('partial_Pt-Pd.txt', sep='\\s+')
df_PtPt = pd.read_csv('partial_Pt-Pt.txt', sep='\\s+')

df_total = pd.read_csv('M0-polrad_1_d2.txt', sep='\\s+')

# fig, ax = plt.subplots(figsize=(10,6), layout='constrained' )
In [3]:
fig, ax = plt.subplots(figsize=(10,6), layout='constrained' )

x = 0
y = 2.2524

ax.plot(df_CoCo['#r(A)'],df_CoCo['G(r)']*y, label='Co-Co')
ax.plot(df_PdCo['#r(A)'], df_PdCo['G(r)']*y + 0.1*x, label = 'Pd-Co')
ax.plot(df_PdPd['#r(A)'], df_PdPd['G(r)']*y + 0.2*x, label = 'Pd-Pd')
ax.plot(df_PtCo['#r(A)'], df_PtCo['G(r)']*y + 0.3*x, label = 'Pt-Co')
ax.plot(df_PtPd['#r(A)'], df_PtPd['G(r)']*y + 0.4*x, label = 'Pt-Pd')
ax.plot(df_PtPt['#r(A)'], df_PtPt['G(r)']*y + 0.5*x, label = 'Pt-Pt')

# ax.plot(df_ref + 0.65*x, label='experimental')
# for i in range(0,7):
    # ax.plot(df_total['#r(A)'], df_total['G(r)']*y + 0.1*x*i, label = 'Total')
ax.plot(df_total['#r(A)'], df_total['G(r)']*y + 0.1*x, label = 'Total', color='black')

ax.set_xlabel('r [$\\AA$]')
ax.set_xlim([0,40])
ax.set_ylabel('G(r)')

ax.legend(loc='upper right')
ax.grid()
plt.rc('font', size='12')
plt.rcParams['font.family']='serif'
plt.show()
No description has been provided for this image

Gráfico interactivo¶

In [4]:
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
pio.renderers.default = 'plotly_mimetype+notebook'



# Crear una figura de Plotly
fig = go.Figure()

# Agregar cada traza (trace) con los datos correspondientes
fig.add_trace(go.Scatter(x=df_CoCo['#r(A)'], y=df_CoCo['G(r)']*2.2524, mode='lines', name='Co-Co'))
fig.add_trace(go.Scatter(x=df_PdCo['#r(A)'], y=df_PdCo['G(r)']*2.2524 + 0.1*0, mode='lines', name='Pd-Co'))
fig.add_trace(go.Scatter(x=df_PdPd['#r(A)'], y=df_PdPd['G(r)']*2.2524 + 0.2*0, mode='lines', name='Pd-Pd'))
fig.add_trace(go.Scatter(x=df_PtCo['#r(A)'], y=df_PtCo['G(r)']*2.2524 + 0.3*0, mode='lines', name='Pt-Co'))
fig.add_trace(go.Scatter(x=df_PtPd['#r(A)'], y=df_PtPd['G(r)']*2.2524 + 0.4*0, mode='lines', name='Pt-Pd'))
fig.add_trace(go.Scatter(x=df_PtPt['#r(A)'], y=df_PtPt['G(r)']*2.2524 + 0.5*0, mode='lines', name='Pt-Pt'))
fig.add_trace(go.Scatter(x=df_total['#r(A)'], y=df_total['G(r)']*2.2524 + 0.1*0, mode='lines', name='Total', line=dict(color='black')))

# Configurar las etiquetas de los ejes
fig.update_layout(
    xaxis_title='r [Å]',
    yaxis_title='G(r)',
    xaxis=dict(range=[0, 40]),
    legend_title_text='Series'
)

# Mostrar la figura
fig.show()

Gráficos de Base y Pesos estadísticos (Nuevo)¶

In [5]:
import plotly.express as px
import plotly.graph_objects as go
import plotly.io as pio
pio.renderers.default = 'plotly_mimetype+notebook'



# Crear una figura de Plotly
fig = go.Figure()

# Agregar cada traza (trace) con los datos correspondientes
fig.add_trace(go.Scatter(x=df_CoCo['#r(A)'], y=df_CoCo['Base']*2.2524, mode='lines', name='Co-Co'))
fig.add_trace(go.Scatter(x=df_PdCo['#r(A)'], y=df_PdCo['Base']*2.2524 + 0.1*0, mode='lines', name='Pd-Co'))
fig.add_trace(go.Scatter(x=df_PdPd['#r(A)'], y=df_PdPd['Base']*2.2524 + 0.2*0, mode='lines', name='Pd-Pd'))
fig.add_trace(go.Scatter(x=df_PtCo['#r(A)'], y=df_PtCo['Base']*2.2524 + 0.3*0, mode='lines', name='Pt-Co'))
fig.add_trace(go.Scatter(x=df_PtPd['#r(A)'], y=df_PtPd['Base']*2.2524 + 0.4*0, mode='lines', name='Pt-Pd'))
fig.add_trace(go.Scatter(x=df_PtPt['#r(A)'], y=df_PtPt['Base']*2.2524 + 0.5*0, mode='lines', name='Pt-Pt'))
fig.add_trace(go.Scatter(x=df_total['#r(A)'], y=df_total['Base']*2.2524 + 0.1*0, mode='lines', name='Total', line=dict(color='black')))

# Configurar las etiquetas de los ejes
fig.update_layout(
    xaxis_title='r [Å]',
    yaxis_title='G(r)',
    xaxis=dict(range=[0, 40]),
    legend_title_text='Series'
)

# Mostrar la figura
fig.show()
In [16]:
# Crear una figura de Plotly
fig = go.Figure()

# Factores de normalización
factores_normalizacion = {
    'Pt-Pt': 36930.7461,
    'Pt-Pd': 258682.906,
    'Pt-Co': 129852.602,
    'Pd-Co': 234547.625,
    'Pd-Pd': 99608.9062,
    'Co-Co': 29319.1445
}

n = sum([value for key, value in factores_normalizacion.items()])

print(n)

# Multiplicar cada valor por 0.00001
f_n = {key: value/n for key, value in factores_normalizacion.items()}

print('Weights')
print(f_n)
print(sum([value for key, value in f_n.items()]))

# Agregar cada traza (trace) con los datos correspondientes
fig.add_trace(go.Scatter(x=df_CoCo['#r(A)'], y=df_CoCo['Base']*2.2524*f_n['Co-Co'], mode='lines', name='Co-Co'))
fig.add_trace(go.Scatter(x=df_PdCo['#r(A)'], y=df_PdCo['Base']*2.2524*f_n['Pd-Co'], mode='lines', name='Pd-Co'))
fig.add_trace(go.Scatter(x=df_PdPd['#r(A)'], y=df_PdPd['Base']*2.2524*f_n['Pd-Pd'], mode='lines', name='Pd-Pd'))
fig.add_trace(go.Scatter(x=df_PtCo['#r(A)'], y=df_PtCo['Base']*2.2524*f_n['Pt-Co'], mode='lines', name='Pt-Co'))
fig.add_trace(go.Scatter(x=df_PtPd['#r(A)'], y=df_PtPd['Base']*2.2524*f_n['Pt-Pd'], mode='lines', name='Pt-Pd'))
fig.add_trace(go.Scatter(x=df_PtPt['#r(A)'], y=df_PtPt['Base']*2.2524*f_n['Pt-Pt'], mode='lines', name='Pt-Pt'))
fig.add_trace(go.Scatter(x=df_total['#r(A)'], y=df_total['Base']*2.2524, mode='lines', name='Total', line=dict(color='black')))

# Configurar las etiquetas de los ejes
fig.update_layout(
    xaxis_title='r [Å]',
    yaxis_title='G(r)',
    legend_title_text='Series'
)

# Mostrar la figura
fig.show()
788941.9297999999
Weights
{'Pt-Pt': 0.04681047451662519, 'Pt-Pd': 0.32788586362189825, 'Pt-Co': 0.1645908236020846, 'Pd-Co': 0.2972939023021109, 'Pd-Pd': 0.12625632183759236, 'Co-Co': 0.03716261411968879}
1.0

PDFs y pesos estadísticos (Nuevo)¶

In [17]:
fig = go.Figure()
# Agregar cada traza (trace) con los datos correspondientes
fig.add_trace(go.Scatter(x=df_CoCo['#r(A)'], y=df_CoCo['G(r)']*2.2524*f_n['Co-Co'], mode='lines', name='Co-Co'))
fig.add_trace(go.Scatter(x=df_PdCo['#r(A)'], y=df_PdCo['G(r)']*2.2524*f_n['Pd-Co'], mode='lines', name='Pd-Co'))
fig.add_trace(go.Scatter(x=df_PdPd['#r(A)'], y=df_PdPd['G(r)']*2.2524*f_n['Pd-Pd'], mode='lines', name='Pd-Pd'))
fig.add_trace(go.Scatter(x=df_PtCo['#r(A)'], y=df_PtCo['G(r)']*2.2524*f_n['Pt-Co'], mode='lines', name='Pt-Co'))
fig.add_trace(go.Scatter(x=df_PtPd['#r(A)'], y=df_PtPd['G(r)']*2.2524*f_n['Pt-Pd'], mode='lines', name='Pt-Pd'))
fig.add_trace(go.Scatter(x=df_PtPt['#r(A)'], y=df_PtPt['G(r)']*2.2524*f_n['Pt-Pt'], mode='lines', name='Pt-Pt'))
fig.add_trace(go.Scatter(x=df_total['#r(A)'], y=df_total['G(r)']*2.2524, mode='lines', name='Total', line=dict(color='black')))

# Configurar las etiquetas de los ejes
fig.update_layout(
    xaxis_title='r [Å]',
    yaxis_title='G(r)',
    legend_title_text='Series'
)

# Mostrar la figura
fig.show()

Análisis y Conclusiones del Peso Estadístico de las Interacciones (Nuevo)¶

Gráfico del Peso Estadístico de las Interacciones¶

  1. Interacción predominante: La interacción Pt-Pd (línea naranja) tiene el mayor peso estadístico, alcanzando un valor máximo, lo que indica que esta interacción es la más significativa dentro de la nanopartícula. Esto sugiere que Pt y Pd tienden a estar más cerca y tienen una mayor contribución a la estructura global.

  2. Distribución del peso estadístico: Las interacciones Pt-Pd, Pt-Co y Pd-Co tienen pesos estadísticos más altos en comparación con otras interacciones, indicando que estas combinaciones de elementos tienen una presencia más destacada en la nanopartícula.

  3. Interacciones menos significativas: Las interacciones Pd-Pd (línea verde) y Pt-Pt (línea celeste) tienen los pesos estadísticos más bajos, sugiriendo que estas combinaciones de átomos son menos frecuentes o tienen una influencia menor en la estructura global de la nanopartícula.

  4. Contribución combinada: La línea negra representa la contribución total de todas las interacciones. El pico en la contribución total refleja la suma de todas las interacciones individuales, mostrando cómo cada combinación de elementos contribuye al peso estadístico global.

  5. Variación en diferentes regiones: El gráfico puede mostrar variaciones en el peso estadístico a diferentes distancias, lo que puede indicar cómo cambian las interacciones a medida que se mueve a través de diferentes partes de la nanopartícula.

  6. Importancia de las interacciones Pt y Pd: Las altas contribuciones de las interacciones que involucran Pt y Pd (especialmente Pt-Pd) sugieren que estos elementos juegan un papel clave en la estabilidad y estructura de la nanopartícula.

Análisis Detallado por Interacción¶

  • Pt-Pd (naranja): Interacción más significativa con el mayor peso estadístico, crucial para la estructura de la nanopartícula.
  • Pd-Co (rojo) y Pt-Co (morado): También tienen altos pesos estadísticos, mostrando su importancia en la distribución atómica.
  • Co-Co (azul), Pd-Pd (verde) y Pt-Pt (celeste): Menor peso estadístico, indicando que estas interacciones son menos dominantes.

Estas observaciones proporcionan una comprensión detallada de cómo cada interacción atómica contribuye al peso estadístico global de la nanopartícula, ayudando a revelar la complejidad de su estructura interna.

Consideraciones y mis dudas¶

Como se puede ver en las Gráficas y los pesos estadísticos, la interacción Co-Co la que tiene menos contribución, por lo tanto:

SOSPECHO (unicamente sospecho, sin embargo no sé) que el hecho de que las interacciones Co-Co sean las menos contribuyentes, significa que diferentes perfiles de distribución de cobalto hacia el centro NO SON LA CAUSA del corrimiento lateral de las PDFs de la imagen de abajo. Más bien, la causa del corrimento es la distribución de los otros elementos hacia el centro (sé que suena como lo mismo, sin embargo, es diferente causa).

image.png

En caso de ser cierto, sería cuestión de modificar ligeramente la redacción de los resultados y las conclusiones en la tésis y el artículo. Pero para confirmarlo se requiere hacer este análisis de contribuciones con otros perfiles de distribución de cobalto.

Sin embargo, no quiero hacerlo. Y espero que tampoco sea verdad, pues tal vez no me acuerde de análisis pasados y me esté contradiciendo. Así que solamente pongo esto como una hipótesis curiosa que me encontré por ahí. Lo importante es el análisis de pesos estadísticos.

Posibles Gráficas para el Artículo¶

In [6]:
ancho_cm = 16
alto_cm = 32
ancho_pulg = ancho_cm / 2.54
alto_pulg = alto_cm / 2.54

fig, ax =plt.subplots(6,1, sharex=True, figsize=(ancho_pulg, alto_pulg), dpi=200)
fig.subplots_adjust(hspace=0)


ax[0].plot(df_CoCo['#r(A)'],df_CoCo['G(r)']*y, label='Co-Co', color = 'red')
ax[1].plot(df_PdCo['#r(A)'], df_PdCo['G(r)']*y + 0.1*x, label = 'Pd-Co', color = 'red')
ax[2].plot(df_PdPd['#r(A)'], df_PdPd['G(r)']*y + 0.2*x, label = 'Pd-Pd', color = 'red')
ax[3].plot(df_PtCo['#r(A)'], df_PtCo['G(r)']*y + 0.3*x, label = 'Pt-Co', color = 'red')
ax[4].plot(df_PtPd['#r(A)'], df_PtPd['G(r)']*y + 0.4*x, label = 'Pt-Pd', color = 'red')
ax[5].plot(df_PtPt['#r(A)'], df_PtPt['G(r)']*y + 0.5*x, label = 'Pt-Pt', color = 'red')


for i in range(6):
    ax[i].plot(df_total['#r(A)'], df_total['G(r)']*y, label = 'Total', color='black')
    ax[i].set_xlim([1,25])
    ax[i].set_ylim([-0.15,0.45])
    #ax[i].label_outer()
    for axis in ['top', 'bottom', 'left', 'right']:
        ax[i].spines[axis].set(linewidth = 1.6)


ax[5].set_xlabel('r [$\\AA$]')
ax[3].set_ylabel('Partial Atomic PDF G(r)')

xx = 1.5
yy = 0.35

ax[0].text(*[xx,yy], 'a)          Co-Co', rotation_mode='anchor')
ax[1].text(*[xx,yy], 'b)          Co-Pd', rotation_mode='anchor')
ax[2].text(*[xx,yy], 'c)          Pd-Pd', rotation_mode='anchor')
ax[3].text(*[xx,yy], 'd)          Pt-Co', rotation_mode='anchor')
ax[4].text(*[xx,yy], 'e)          Pt-Pd', rotation_mode='anchor')
ax[5].text(*[xx,yy], 'f)          Pt-Pt', rotation_mode='anchor')


plt.rc('font', size=12)

#fpath = Path(mpl.get_data_path(), "C:/Users/guill/Downloads/Fira_Sans/FiraSans-Medium.ttf")

plt.rcParams['font.serif'] = ['Times New Roman']
# fig.savefig('partial_pdfs.png', dpi=500)
plt.show()
No description has been provided for this image
In [7]:
ancho_cm = 16
alto_cm = 32
ancho_pulg = ancho_cm / 2.54
alto_pulg = alto_cm / 2.54

fig, ax =plt.subplots(6,1, sharex=True, figsize=(ancho_pulg, alto_pulg), dpi=200)
fig.subplots_adjust(hspace=0)


ax[0].plot(df_CoCo['#r(A)'],df_CoCo['G(r)']*y, label='Co-Co', color = 'red')
ax[1].plot(df_PdCo['#r(A)'], df_PdCo['G(r)']*y + 0.1*x, label = 'Pd-Co', color = 'red')
ax[2].plot(df_PdPd['#r(A)'], df_PdPd['G(r)']*y + 0.2*x, label = 'Pd-Pd', color = 'red')
ax[3].plot(df_PtCo['#r(A)'], df_PtCo['G(r)']*y + 0.3*x, label = 'Pt-Co', color = 'red')
ax[4].plot(df_PtPd['#r(A)'], df_PtPd['G(r)']*y + 0.4*x, label = 'Pt-Pd', color = 'red')
ax[5].plot(df_PtPt['#r(A)'], df_PtPt['G(r)']*y + 0.5*x, label = 'Pt-Pt', color = 'red')

for i in range(6):
    ax[i].plot(df_total['#r(A)'], df_total['G(r)']*y, label = 'Total', color='black')
    ax[i].set_xlim([25,45])
    ax[i].set_ylim([-0.05,0.05])
    #ax[i].label_outer()
    for axis in ['top', 'bottom', 'left', 'right']:
        ax[i].spines[axis].set(linewidth = 1.6)


ax[5].set_xlabel('r [$\\AA$]')
ax[3].set_ylabel('Partial Atomic PDF G(r)')

xx = 25.5
yy = 0.03

ax[0].text(*[xx,yy], 'a)          Co-Co', rotation_mode='anchor')
ax[1].text(*[xx,yy], 'b)          Co-Pd', rotation_mode='anchor')
ax[2].text(*[xx,yy], 'c)          Pd-Pd', rotation_mode='anchor')
ax[3].text(*[xx,yy], 'd)          Pt-Co', rotation_mode='anchor')
ax[4].text(*[xx,yy], 'e)          Pt-Pd', rotation_mode='anchor')
ax[5].text(*[xx,yy], 'f)          Pt-Pt', rotation_mode='anchor')


plt.rc('font', size=12)

#fpath = Path(mpl.get_data_path(), "C:/Users/guill/Downloads/Fira_Sans/FiraSans-Medium.ttf")

plt.rcParams['font.serif'] = ['Times New Roman']
# fig.savefig('partial_pdfs.png', dpi=500)
plt.show()
No description has been provided for this image
In [8]:
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

fig, ax =plt.subplots(6,1, sharex=True, figsize=(ancho_pulg, alto_pulg), dpi=200)
fig.subplots_adjust(hspace=0)


ax[0].plot(df_CoCo['#r(A)'],df_CoCo['G(r)']*y, label='Co-Co', color = 'red')
ax[1].plot(df_PdCo['#r(A)'], df_PdCo['G(r)']*y + 0.1*x, label = 'Pd-Co', color = 'red')
ax[2].plot(df_PdPd['#r(A)'], df_PdPd['G(r)']*y + 0.2*x, label = 'Pd-Pd', color = 'red')
ax[3].plot(df_PtCo['#r(A)'], df_PtCo['G(r)']*y + 0.3*x, label = 'Pt-Co', color = 'red')
ax[4].plot(df_PtPd['#r(A)'], df_PtPd['G(r)']*y + 0.4*x, label = 'Pt-Pd', color = 'red')
ax[5].plot(df_PtPt['#r(A)'], df_PtPt['G(r)']*y + 0.5*x, label = 'Pt-Pt', color = 'red')


for i in range(6):
    ax[i].plot(df_total['#r(A)'], df_total['G(r)']*y, label = 'Total', color='black')
    ax[i].set_xlim([1,25])
    ax[i].set_ylim([-0.15,0.45])
    #ax[i].label_outer()
    for axis in ['top', 'bottom', 'left', 'right']:
        ax[i].spines[axis].set(linewidth = 1.6)


w = 1.75
h = 0.5
bta = (0.55, 0.6, 0.2, 0.4)


axins0 = inset_axes(ax[0], width=w, height=h,
                    bbox_to_anchor=bta, bbox_transform=ax[0].transAxes)
axins1 = inset_axes(ax[1], width=w, height=h,
                    bbox_to_anchor=bta, bbox_transform=ax[1].transAxes)
axins2 = inset_axes(ax[2], width=w, height=h,
                    bbox_to_anchor=bta, bbox_transform=ax[2].transAxes
                    )
axins3 = inset_axes(ax[3], width=w, height=h,
                    bbox_to_anchor=bta, bbox_transform=ax[3].transAxes
                    )
axins4 = inset_axes(ax[4], width=w, height=h,
                    bbox_to_anchor=bta, bbox_transform=ax[4].transAxes)
axins5 = inset_axes(ax[5], width=w, height=h,
                    bbox_to_anchor=bta, bbox_transform=ax[5].transAxes
                    )


axins0.plot(df_CoCo['#r(A)'],df_CoCo['G(r)']*y, label='Co-Co', color = 'red')
axins1.plot(df_PdCo['#r(A)'], df_PdCo['G(r)']*y + 0.1*x, label = 'Pd-Co', color = 'red')
axins2.plot(df_PdPd['#r(A)'], df_PdPd['G(r)']*y + 0.2*x, label = 'Pd-Pd', color = 'red')
axins3.plot(df_PtCo['#r(A)'], df_PtCo['G(r)']*y + 0.3*x, label = 'Pt-Co', color = 'red')
axins4.plot(df_PtPd['#r(A)'], df_PtPd['G(r)']*y + 0.4*x, label = 'Pt-Pd', color = 'red')
axins5.plot(df_PtPt['#r(A)'], df_PtPt['G(r)']*y + 0.5*x, label = 'Pt-Pt', color = 'red')

for axis in [axins0, axins1, axins2, axins3, axins4, axins5]:
    axis.plot(df_total['#r(A)'], df_total['G(r)']*y, label = 'Total', color='black')
    axis.set_xlim([25,45])
    axis.set_ylim([-0.05, 0.035])

ax[5].set_xlabel('r [$\\AA$]')
ax[3].set_ylabel('Partial Atomic PDF G(r)')

xx = 1.5
yy = 0.35

ax[0].text(*[xx,yy], 'a)          Co-Co', rotation_mode='anchor')
ax[1].text(*[xx,yy], 'b)          Co-Pd', rotation_mode='anchor')
ax[2].text(*[xx,yy], 'c)          Pd-Pd', rotation_mode='anchor')
ax[3].text(*[xx,yy], 'd)          Pt-Co', rotation_mode='anchor')
ax[4].text(*[xx,yy], 'e)          Pt-Pd', rotation_mode='anchor')
ax[5].text(*[xx,yy], 'f)          Pt-Pt', rotation_mode='anchor')


plt.rc('font', size=12)

#fpath = Path(mpl.get_data_path(), "C:/Users/guill/Downloads/Fira_Sans/FiraSans-Medium.ttf")

plt.rcParams['font.serif'] = ['Times New Roman']
# fig.savefig('partial_pdfs.png', dpi=500)
plt.show()
No description has been provided for this image

Resultado Final¶

Comparación entre las Funciones de Distribución de Pares (PDF) obtenidas al considerar las aportaciones parciales de diferentes interacciones atómicas (línea roja) en contraste con la PDF final obtenida a 300 K del modelo con un 8% de Co hacia el centro y 82% en la superficie (línea negra). Las vistas radiales correspondientes se muestran con los átomos de Co en rojo, Pt en blanco y Pd en azul. En el extremo superior de cada subfigura, se muestra la fracción de átomos más allá de los 25 angstroms de radio.

En términos aproximados de concentración relativa por radio:

a) Co-Co: Muestra la contribución parcial de las interacciones Co-Co. El modelo 3D en el extremo superior representa esta interacción. b) Co-Pd: Representa las contribuciones parciales de las interacciones Co-Pd, con un modelo 3D adjunto que muestra estas interacciones específicas. c) Pd-Pd: Detalla las aportaciones parciales de las interacciones Pd-Pd. El gráfico en el extremo superior ilustra un modelo 3D de esta distribución. d) Pt-Co: Expone las contribuciones parciales de las interacciones Pt-Co, acompañado de un modelo 3D correspondiente. e) Pt-Pd: Presenta las aportaciones parciales de las interacciones Pt-Pd, con su modelo 3D en el extremo superior. f) Pt-Pt: Muestra las interacciones parciales de los átomos de Pt, ilustradas en el modelo 3D correspondiente.

Con base en la explicación y la interpretación de la figura anterior, se pueden sacar las siguientes conclusiones sobre la nanopartícula modelo con un 8% de Co hacia el centro y 82% en la superficie a 300 K:

  1. Contribuciones Parciales: Las PDFs parciales muestran cómo cada tipo de interacción atómica (Co-Co, Co-Pd, Pd-Pd, Pt-Co, Pt-Pd, Pt-Pt) contribuye a la estructura global de la nanopartícula. Esto es crucial para entender cómo las distintas combinaciones de elementos afectan la configuración estructural y las propiedades de la nanopartícula.
  2. Interacciones Atómicas: Las diferentes subfiguras (a-f) ilustran que las interacciones atómicas tienen un papel significativo en la estabilidad y la configuración de la nanopartícula. Por ejemplo, la figura (a) muestra interacciones Co-Co predominantes en la superficie, mientras que la figura (d) destaca las interacciones Pt-Co en el interior.
  3. Compatibilidad con Datos Experimentales: La comparación de las líneas rojas (PDFs parciales) con la línea negra (PDF final) indica cuán bien los modelos parciales representan la estructura completa de la nanopartícula. La cercanía de estas líneas sugiere que las interacciones específicas se modelaron de manera adecuada.

Análisis de Diferencias en Interacciones Atómicas y Estructura de la Nanopartícula¶

Al analizar las diferencias entre las líneas negras (PDF final a 300 K) y las líneas rojas (PDFs parciales) en cada gráfico, se pueden inferir varios aspectos importantes sobre las interacciones atómicas y la estructura de la nanopartícula:

a) Co-Co¶

  • Observaciones: La línea roja presenta desviaciones significativas respecto a la línea negra en ciertas regiones.
  • Inferencia: Las interacciones Co-Co solas no representan completamente la estructura observada en la PDF final. Esto sugiere que otras interacciones (como Co-Pd o Co-Pt) son necesarias para ajustar los datos experimentales.

b) Co-Pd¶

  • Observaciones: La línea roja muestra ciertas similitudes con la línea negra, pero también hay diferencias notables.
  • Inferencia: Las interacciones Co-Pd contribuyen parcialmente a la estructura global, pero no son suficientes por sí mismas. Las diferencias indican que otras interacciones (probablemente Co-Co, Pd-Pd, etc.) también juegan un papel crucial.

c) Pd-Pd¶

  • Observaciones: Hay algunas coincidencias entre las líneas roja y negra, pero también diferencias que destacan.
  • Inferencia: Las interacciones Pd-Pd son importantes, pero no dominantes en la configuración estructural final. Otras interacciones deben ser consideradas para una representación completa.

d) Pt-Co¶

  • Observaciones: La línea roja se desvía notablemente de la línea negra en ciertas partes del gráfico.
  • Inferencia: Las interacciones Pt-Co tienen un papel menor en la estructura final en comparación con otras interacciones. Estas diferencias sugieren que la presencia de Pt está más influenciada por interacciones con Pd u otros elementos.

e) Pt-Pd¶

  • Observaciones: La coincidencia entre las líneas roja y negra es moderada, con algunas discrepancias.
  • Inferencia: Las interacciones Pt-Pd contribuyen a la estructura, pero no lo suficiente para explicar completamente la PDF final. Es probable que las interacciones con Co y Pd sean más relevantes.

f) Pt-Pt¶

  • Observaciones: La línea roja difiere considerablemente de la línea negra, indicando una contribución menor.
  • Inferencia: Las interacciones Pt-Pt tienen una influencia limitada en la estructura global de la nanopartícula. Esto sugiere que Pt se encuentra mayormente en interacciones heterogéneas con Co o Pd.

Conclusión General¶

Las diferencias entre las líneas negras y rojas en cada caso resaltan la importancia de considerar múltiples interacciones atómicas para comprender plenamente la estructura de la nanopartícula. Ninguna de las contribuciones parciales por sí sola puede explicar la PDF final; la combinación de todas ellas es lo que define la estructura completa. Esto subraya la complejidad y la naturaleza interdependiente de las interacciones atómicas en materiales compuestos como las nanopartículas.

Conclusiones Particulares¶

  1. Distribuciones Extensas: Las interacciones que involucran Co (especialmente Co-Co) y Pt tienen distancias promedio mayores, sugiriendo una distribución más extensa de estos elementos dentro de la nanopartícula.
  2. Contribuciones Significativas: Las interacciones Pt-Pd y Pd-Co muestran un alto número de pares y factores de normalización elevados, indicando que estas interacciones son cruciales para la estructura global de la nanopartícula.
  3. Interacciones Menores: Las interacciones Pd-Pd y Co-Co son menos frecuentes, reflejando que estas combinaciones de elementos tienen una menor influencia en la estructura general comparado con otras interacciones.
  4. Implicaciones Estructurales: Las diferencias en los factores de normalización y las distancias promedio entre diferentes interacciones sugieren que la estructura final de la nanopartícula es altamente dependiente de las combinaciones y distribuciones de estos elementos.

Resultados de aquí¶

Análisis y Conclusiones de los Datos de Cálculo de las PDFs Parciales¶

  1. Pt-Pt

    • Número de Átomos y Pares: 1195 átomos, 713415 pares.
    • Rango de Distancias: 2.48 - 48.45 $\AA$.
    • Distancia Promedio: 23.70 $\AA$.
    • Factor de Normalización: 36930.75.
    • Observación: La contribución de las interacciones Pt-Pt es moderada, ya que la distancia promedio y el factor de normalización son relativamente altos, indicando una distribución más extensa en la nanopartícula.
  2. Pt-Pd

    • Número de Átomos y Pares: 3162 átomos, 4997541 pares.
    • Rango de Distancias: 2.35 - 48.74 $\AA$.
    • Distancia Promedio: 23.76 $\AA$.
    • Factor de Normalización: 258682.91.
    • Observación: Las interacciones Pt-Pd son significativas, con un alto número de pares y un rango amplio de distancias, lo que sugiere una notable contribución a la estructura global.
  3. Pt-Co

    • Número de Átomos y Pares: 2354 átomos, 2769481 pares.
    • Rango de Distancias: 2.18 - 48.92 $\AA$.
    • Distancia Promedio: 26.23 $\AA$.
    • Factor de Normalización: 129852.60.
    • Observación: Las interacciones Pt-Co tienen una distribución más amplia, con una distancia promedio mayor, lo que indica que Co se encuentra disperso en la nanopartícula en estas interacciones.
  4. Pd-Co

    • Número de Átomos y Pares: 3126 átomos, 4884375 pares.
    • Rango de Distancias: 2.18 - 49.04 $\AA$.
    • Distancia Promedio: 25.69 $\AA$.
    • Factor de Normalización: 234547.63.
    • Observación: Las interacciones Pd-Co son extensas, con un alto número de pares y una distancia promedio considerable, sugiriendo una distribución significativa de Co en relación con Pd.
  5. Pd-Pd

    • Número de Átomos y Pares: 1967 átomos, 1933561 pares.
    • Rango de Distancias: 2.45 - 48.53 $\AA$.
    • Distancia Promedio: 23.82 $\AA$.
    • Factor de Normalización: 99608.91.
    • Observación: Las interacciones Pd-Pd son menos frecuentes en comparación con otras, reflejando una menor concentración de pares Pd-Pd.
  6. Co-Co

    • Número de Átomos y Pares: 1159 átomos, 671061 pares.
    • Rango de Distancias: 2.18 - 48.92 $\AA$.
    • Distancia Promedio: 28.64 $\AA$.
    • Factor de Normalización: 29319.14.
    • Observación: Las interacciones Co-Co presentan una distancia promedio mayor, indicando que los átomos de Co están más dispersos en la nanopartícula.

Figure5_final.png